package com.dys.testreflect01;

/**
 * @className: com.dys.testreflect01.Test2
 * @description: com.dys.testreflect01
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/08/26 下午10:06
 */
public class Test2 {

    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) {
        // 定义一个字符串，用来模拟前台选择的支付方式：
        String paymentMethod = "支付宝";
        if ("支付宝".equals(paymentMethod)) {
            // 支付宝支付
            pay(new AliPay());
        }
        if ("微信".equals(paymentMethod)) {
            // 微信支付
            pay(new WeChat());
        }
        if ("招商银行".equals(paymentMethod)) {
            // 招商银行卡支付
            pay(new BankCard());
        }
    }

    /**
     * 方法形参是接口，具体传入的是接口的实现类的对象-->多态的一种形式
     * 多态确实可以提高代码的扩展性，但是：扩展性没有达到最好。怎么没有达到最好：上面的分支，还是需要手动的删除或者添加。
     *
     * @param m 美团外卖对象
     */
    public static void pay(Mtwm m) {
        m.payOnline();
    }
}
